public class Leetcode {
}

//leetcode:647:最长连续递增序列
class Solution1 {
    public int findLengthOfLCIS(int[] nums) {
        int n = nums.length , count  = 1;
        int len = 1;
        for(int i = 1; i < n; i++){
            //如果这个数大于前一个数就让此时的长度加一
            if(nums[i] > nums[i-1]){
                count++;
            }else{
                //如果小于就重新计算长度
                count = 1;
            }
            //得到最大的长度
            len = Math.max(len , count);
        }
        return len;
    }
}


//leetcode:121:买股票的最佳时机
class Solution2 {
    public int maxProfit(int[] prices) {
        int max = 0;
        int min = prices[0];
        for(int i = 0;i < prices.length;i++){
            //得到最小值
            min = Math.min(min,prices[i]);
            //让最大值减去最小值得到新的最大值
            max = Math.max(max,prices[i] - min);
        }
        return max;
    }
}

//leetcode:122:买股票的最佳时机II
class Solution3 {
    public int maxProfit(int[] prices) {
        //双指针
        int ret = 0 , n = prices.length;
        for (int i = 0; i < n;i++) {
            //记录一个位置
            int j = i;
            //如果此时的值是处于递增状态的就继续往后移动
            while (j+1 < n && prices[j] < prices[j+1]){
                j++;
            }
            //直到不处于递增状态，就让此时这段的最大值减去i位置的值得到这段的最大利润，加入到ret中
            ret += prices[j] - prices[i];
            i = j;
        }
        return ret;
    }
}